/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeComboTreeGrid.js<br>
 * 日期：2016年8月24日<br>
 * 作者: 杜劝劝<br>
 * 功能：把选择控件和下拉树数据网格面板结合起来<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeComboTreeGrid<br>
 * 类型功能：组合树网格声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositeComboTreeGrid = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeComboTreeGrid",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		:	
	 * {
	 * 		width	: '100%',			        //组件宽度
	 * 		label   :'Select Item:',	        //标签名
	 * 		url     :'treegrid_data1.json',		//获取数据的url
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onShowPanel',
		                     'onHidePanel',
		                     'onChange',
		                     'onResize',
		                     'onClickButton',
		                     'onClickIcon',
		                     'onBeforeValidate',
		                     'onValidate',
		                     'onBeforeLoad',
		                     'onLoad',
		                     'onLoadSuccess',
		                     'onLoadError',
		                     'onBeforeOpen',
		                     'onOpen',
		                     'onBeforeClose',
		                     'onClose',
		                     'onBeforeDestroy',
		                     'onDestroy',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onMove',
		                     'onMaximize',
		                     'onRestore',
		                     'onMinimize',
		                     'onClickRow',
		                     'onDblClickRow',
		                     'onClickCell',
		                     'onDblClickCell',
		                     'onBeforeSortColumn',
		                     'onSortColumn',
		                     'onResizeColumn',
		                     'onBeforeSelect',
		                     'onSelect',
		                     'onBeforeUnselect',
		                     'onUnselect',
		                     'onSelectAll',
		                     'onUnselectAll',
		                     'onBeforeCheck',
		                     'onCheck',
		                     'onBeforeUncheck',
		                     'onUncheck',
		                     'onCheckAll',
		                     'onUncheckAll',
		                     'onBeforeEdit',
		                     'onBeginEdit',
		                     'onEndEdit',
		                     'onAfterEdit',
		                     'onCancelEdit',
		                     'onHeaderContextMenu',
		                     'onRowContextMenu',
		                     'onBeforeCheckNode',
		                     'onCheckNode',
		                     'onContextMenu',
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	//
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("input",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.combotreegrid(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod : 方法名称
	 * 参数输入：objArgs : 更具方法名称，在该类方法中查找对应参数，或easyUI官网对应组件的方法中检索
	 * 函数返回：根据调用方法，返回相应的数值<br>
	 * 异常信息：无<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().combotreegrid(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.options<br>
	 * 函数功能：返回选项（options）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：返回选择的对象<br>
	 * 异常信息：无<br>
	 */
	options : function(){
		return this.getElement().combotreegrid('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.grid<br>
	 * 函数功能：返回树网格对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	grid : function(){
		return this.getElement().combotreegrid('grid');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.setValue<br>
	 * 函数功能：设置组件的值。<br>
	 * 参数输入：sValue: 'abc'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValue : function(value){
		this.getElement().combotreegrid('setValue',value);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.setValues<br>
	 * 函数功能：设置组件的值的数组。<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValues : function(bForceClose){
		this.getElement().combotreegrid('setValues',value);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.clear<br>
	 * 函数功能：清除组件的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clear : function(){
		this.getElement().combotreegrid('clear');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.panel<br>
	 * 函数功能：返回下拉面板对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	panel : function(){
		return this.getElement().combotreegrid('panel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.textbox<br>
	 * 函数功能：返回文本框对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	textbox : function(){
		return this.getElement().combotreegrid('textbox');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.destroy<br>
	 * 函数功能：销毁组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	destroy : function(){
		return this.getElement().combotreegrid('destroy');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.resize<br>
	 * 函数功能：调整组件的宽度。<br>
	 * 参数输入：sWideh:100<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resize : function(sWideh){
		return this.getElement().combotreegrid('resize',sWideh);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.showPanel<br>
	 * 函数功能：显示下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	showPanel : function(){
		return this.getElement().combotreegrid('showPanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.hidePanel<br>
	 * 函数功能：隐藏下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	hidePanel : function(){
		return this.getElement().combotreegrid('hidePanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.disable<br>
	 * 函数功能：禁用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disable : function(){
		return this.getElement().combotreegrid('disable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.enable<br>
	 * 函数功能：启用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enable : function(){
		return this.getElement().combotreegrid('enable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.readonly<br>
	 * 函数功能：启用/禁用只读模式。该方法自版本 1.3.3 起可用。<br>
	 * 参数输入：mode: true/false<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	readonly : function(mode){
		return this.getElement().combotreegrid('readonly',mode);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.validate<br>
	 * 函数功能：验证输入的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	validate : function(){
		return this.getElement().combotreegrid('validate');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.isValid<br>
	 * 函数功能：返回验证结果。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：true/false : boolean 类型的值true 表示进行了校验，false表示当前组件未进行校验<br>
	 * 异常信息：无<br>
	 */
	isValid : function(){
		return this.getElement().combotreegrid('isValid');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.reset<br>
	 * 函数功能：重置组件的值。该方法自版本 1.3.2 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	reset : function(){
		return this.getElement().combotreegrid('reset');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.getText<br>
	 * 函数功能：获取输入的文本。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getText : function(){
		return this.getElement().combotreegrid('getText');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.setText <br>
	 * 函数功能：设置文本值。<br>
	 * 参数输入：sText： 123<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setText : function(sValue){
		return this.getElement().combotreegrid('setText',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.getValues<br>
	 * 函数功能：获取组件的值的数组。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValues : function(){
		return this.getElement().combotreegrid('getValues');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.setValues<br>
	 * 函数功能：设置组件的值的数组。<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValues : function(aValues){
		return this.getElement().combotreegrid('setValues',aValues);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.getValue<br>
	 * 函数功能：设置组件的值<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValue : function(){
		return this.getElement().combotreegrid('getValue');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.setValue<br>
	 * 函数功能：设置组件的值。<br>
	 * 参数输入：sValue: 'abc'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValue : function(sValue){
		return this.getElement().combotreegrid('setValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.button<br>
	 * 函数功能：返回按钮对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：当前按钮对象<br>
	 * 异常信息：无<br>
	 */
	button : function(){
		return this.getElement().combotreegrid('button');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.initValue<br>
	 * 函数功能：设置初始value值。<br>
	 * 参数输入：sValue：'sun'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	initValue : function(sValue){
		return this.getElement().combotreegrid('initValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.getIcon<br>
	 * 函数功能：获取具体图表对象。<br>
	 * 参数输入：nIndex：5<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getIcon : function(nIndex){
		return this.getElement().combotreegrid('getIcon',nIndex);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.enableValidation<br>
	 * 函数功能：启用验证。该方法自版本 1.3.4 起可用。。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enableValidation : function(){
		return this.getElement().combotreegrid('enableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.disableValidation<br>
	 * 函数功能：禁用验证。该方法自版本 1.3.4 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disableValidation : function(){
		return this.getElement().combotreegrid('disableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTreeGrid.resetValidation<br>
	 * 函数功能：重置验证<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resetValidation : function(){
		return this.getElement().combotreegrid('resetValidation');
	}
});